
//
//  FirstTableViewController.swift
//  SwiftRx研究
//
//  Created by 世霖 on 2020/7/11.
//  Copyright © 2020 世霖. All rights reserved.
//

import UIKit
import RxSwift
import RxCocoa

struct MusicKListViewModel {
    let data = Observable.of([
        Music(name: "123", singer: "1223")
    ])
}


class FirstTableViewController: UIViewController, UIScrollViewDelegate {
    
    //    lazy  var dataSource:[obs] = {
    ////        var dataSource:[Music] = [Music]()
    ////        dataSource.append(Music(name: "123", singer: "123"))
    ////        return dataSource
    //        let data = Observable.just([
    //            Music(name: "456", singer: "456")
    //        ])
    //
    //    }()
    

//    lazy  var dataSource = {
//        //        var dataSource:[Music] = [Music]()
//        //        dataSource.append(Music(name: "123", singer: "123"))
//        //        return dataSource
//        let data = Observable.just([
//            Music(name: "456", singer: "456")
//        ])
//
//    }()
    
        lazy var tableView:UITableView = {

            let tableView = UITableView.init(frame: .zero, style: .plain)
            tableView.backgroundColor =  .gray
            return tableView
    
        }()
    
   //tableView对象
   
    let musicListModel = MusicKListViewModel()
    let disposeBag = DisposeBag()
       
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        let observable = Observable<Int>.timer(1, scheduler: MainScheduler.instance)
        observable.subscribe { event in
            print(event)
            
        }
        
        let observable2 =  Observable<Int>.timer(1, period: 1, scheduler: MainScheduler.instance)
        observable2.subscribe { event2 in
            print(event2)
            
        }
        
        
        tableView.frame = self.view.frame
        
        self.view.addSubview(tableView)
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "string")
        tableView.rx.setDelegate(self).disposed(by: disposeBag)
            
        self.musicListModel.data.bind(to: tableView.rx.items(cellIdentifier: "string")) {_,music  ,cell  in
            cell.textLabel?.text = music.name
            
        }.disposed(by: disposeBag)
        
        
        tableView.rx.modelSelected(Music.self).subscribe(onNext: { music in
            print(music.name)
            }).disposed(by: disposeBag)
        
        
        
        
    }
    

    
}
//extension FirstTableViewController:UITableViewDelegate , UITableViewDataSource {
//    func numberOfSections(in tableView: UITableView) -> Int {
//        return 1
//    }
//    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//        return self.dataSource.count
//    }
//
//    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//        let string = "string"
//        let music = self.dataSource[indexPath.row]
//        var cell = tableView.dequeueReusableCell(withIdentifier: string)
//        if cell == nil {
//            cell = UITableViewCell.init(style: .default, reuseIdentifier: string)
//        }
//        cell?.textLabel?.text = music.name
//        return cell!
//    }
//
//    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//        print(self.dataSource[indexPath.row])
//
//    }
//
//}
